SYNOLOGY-NVMEOFNAMESPACE-MIB DEFINITIONS ::= BEGIN

IMPORTS
	OBJECT-GROUP, MODULE-COMPLIANCE
		FROM SNMPv2-CONF
	OBJECT-TYPE, Integer32, enterprises, MODULE-IDENTITY
		FROM SNMPv2-SMI;

synoNVMeoFNamespace MODULE-IDENTITY
	LAST-UPDATED	"202310190000Z"
	ORGANIZATION	"www.synology.com"
	CONTACT-INFO
		 "Synology Inc.
		  Email: snmp@synology.com"
	DESCRIPTION		"Characteristics of the NVMeoF Namespace information"
	::= { synology 114 }

synology	OBJECT IDENTIFIER
	::= { enterprises 6574 }

synoNVMeoFNamespaceTable OBJECT-TYPE
	SYNTAX		SEQUENCE OF NVMeoFNamespaceEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION	"Table of NVMeoF Namespace data."
	::= { synoNVMeoFNamespace 1 }

synoNVMeoFNamespaceEntry OBJECT-TYPE
	SYNTAX		NVMeoFNamespaceEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION "An entry containing NVMeoF Namespace information"
	INDEX		{ synoNVMeoFNamespaceInfoIndex }
	::= { synoNVMeoFNamespaceTable 1 }

NVMeoFNamespaceEntry ::= SEQUENCE {
	synoNVMeoFNamespaceInfoIndex Integer32,
	synoNVMeoFNamespaceUUID	OCTET STRING,
	synoNVMeoFNamespaceName	OCTET STRING,
	synoNVMeoFNamespaceThroughputReadHigh	Integer32,
	synoNVMeoFNamespaceThroughputReadLow	Integer32,
	synoNVMeoFNamespaceThroughputWriteHigh	Integer32,
	synoNVMeoFNamespaceThroughputWriteLow	Integer32,
	synoNVMeoFNamespaceIopsRead	Integer32,
	synoNVMeoFNamespaceIopsWrite	Integer32,
	synoNVMeoFNamespaceDiskLatencyRead	Integer32,
	synoNVMeoFNamespaceDiskLatencyWrite	Integer32,
	synoNVMeoFNamespaceNetworkLatencyTx	Integer32,
	synoNVMeoFNamespaceNetworkLatencyRx	Integer32,
	synoNVMeoFNamespaceIoSizeRead	Integer32,
	synoNVMeoFNamespaceIoSizeWrite	Integer32,
	synoNVMeoFNamespaceQueueDepth	Integer32,
	synoNVMeoFNamespaceType	OCTET STRING,
	synoNVMeoFNamespaceDiskLatencyAvg	Integer32,
	synoNVMeoFNamespaceThinProvisionVolFreeMBs	Integer32
}

synoNVMeoFNamespaceInfoIndex OBJECT-TYPE
	SYNTAX		Integer32(0..2147483647)
	MAX-ACCESS  not-accessible
	STATUS		current
	DESCRIPTION	"Namespace info index"
	::= { synoNVMeoFNamespaceEntry 1 }

synoNVMeoFNamespaceUUID OBJECT-TYPE
	SYNTAX		OCTET STRING (SIZE(0..255))
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION "Namespace uuid"
	::= { synoNVMeoFNamespaceEntry 2 }

synoNVMeoFNamespaceName OBJECT-TYPE
	SYNTAX		OCTET STRING (SIZE(0..255))
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION "Namespace name"
	::= { synoNVMeoFNamespaceEntry 3 }

synoNVMeoFNamespaceThroughputReadHigh OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION	"Namespace read throughput over 32 bits part"
	::= { synoNVMeoFNamespaceEntry 4 }

synoNVMeoFNamespaceThroughputReadLow OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION	"Namespace read throughput in unsigned 32 bit"
	::= { synoNVMeoFNamespaceEntry 5 }

synoNVMeoFNamespaceThroughputWriteHigh OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION	"Namespace write throughput over 32 bits part"
	::= { synoNVMeoFNamespaceEntry 6 }

synoNVMeoFNamespaceThroughputWriteLow OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION	"Namespace write throughput in unsigned 32 bit"
	::= { synoNVMeoFNamespaceEntry 7 }

synoNVMeoFNamespaceIopsRead OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION	"Namespace read iops"
	::= { synoNVMeoFNamespaceEntry 8 }

synoNVMeoFNamespaceIopsWrite OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION	"Namespace write iops"
	::= { synoNVMeoFNamespaceEntry 9 }

synoNVMeoFNamespaceDiskLatencyRead OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION	"Namespace disk latency when reading"
	::= { synoNVMeoFNamespaceEntry 10 }

synoNVMeoFNamespaceDiskLatencyWrite OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION	"Namespace disk latency when writing"
	::= { synoNVMeoFNamespaceEntry 11 }

synoNVMeoFNamespaceNetworkLatencyTx OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION	"Namespace transfer data network latency"
	::= { synoNVMeoFNamespaceEntry 12 }

synoNVMeoFNamespaceNetworkLatencyRx OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION	"Namespace receive data network latency"
	::= { synoNVMeoFNamespaceEntry 13 }

synoNVMeoFNamespaceIoSizeRead OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION	"Namespace average io size when reading"
	::= { synoNVMeoFNamespaceEntry 14 }

synoNVMeoFNamespaceIoSizeWrite OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION	"Namespace average io size when writing"
	::= { synoNVMeoFNamespaceEntry 15 }

synoNVMeoFNamespaceQueueDepth OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION	"Num of NVMeoF commands in Namespace queue"
	::= { synoNVMeoFNamespaceEntry 16 }

synoNVMeoFNamespaceType OBJECT-TYPE
	SYNTAX		OCTET STRING (SIZE(0..255))
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION "Namespace type"
	::= { synoNVMeoFNamespaceEntry 17 }

synoNVMeoFNamespaceDiskLatencyAvg OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION	"Average latency of Namespace disk"
	::= { synoNVMeoFNamespaceEntry 18 }

synoNVMeoFNamespaceThinProvisionVolFreeMBs OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION	"Free space(MB) of thin provisioning Namespace's volume"
	::= { synoNVMeoFNamespaceEntry 19 }

synoNVMeoFNamespaceConformance	OBJECT IDENTIFIER ::= { synoNVMeoFNamespace 2 }
synoNVMeoFNamespaceCompliances	OBJECT IDENTIFIER ::= { synoNVMeoFNamespaceConformance 1 }
synoNVMeoFNamespaceGroups			OBJECT IDENTIFIER ::= { synoNVMeoFNamespaceConformance 2 }

synoNVMeoFNamespaceCompliance MODULE-COMPLIANCE
	STATUS				current
	DESCRIPTION
						"The compliance statement for NVMeoF Namespace information."
	MODULE				-- this module
	MANDATORY-GROUPS	{ synoNVMeoFNamespaceGroup }
	::= { synoNVMeoFNamespaceCompliances 1 }

synoNVMeoFNamespaceGroup OBJECT-GROUP
	OBJECTS {	synoNVMeoFNamespaceUUID,
				synoNVMeoFNamespaceName,
				synoNVMeoFNamespaceThroughputReadHigh,
				synoNVMeoFNamespaceThroughputReadLow,
				synoNVMeoFNamespaceThroughputWriteHigh,
				synoNVMeoFNamespaceThroughputWriteLow,
				synoNVMeoFNamespaceIopsRead,
				synoNVMeoFNamespaceIopsWrite,
				synoNVMeoFNamespaceDiskLatencyRead,
				synoNVMeoFNamespaceDiskLatencyWrite,
				synoNVMeoFNamespaceNetworkLatencyTx,
				synoNVMeoFNamespaceNetworkLatencyRx,
				synoNVMeoFNamespaceIoSizeRead,
				synoNVMeoFNamespaceIoSizeWrite,
				synoNVMeoFNamespaceQueueDepth,
				synoNVMeoFNamespaceType,
				synoNVMeoFNamespaceDiskLatencyAvg,
				synoNVMeoFNamespaceThinProvisionVolFreeMBs }
	STATUS		current
	DESCRIPTION
				"A collection of objects providing basic information
				of an synology NVMeoF Namespace entity."
	::= { synoNVMeoFNamespaceGroups 1 }

END
